package com.gl.edificio.dummy;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import com.gl.edificio.domain.Area;
import com.gl.edificio.domain.Empleado;
import com.gl.edificio.domain.Facturacion;

public class AreaDummy {

	private List<Area> areas;

	public AreaDummy() {
		super();
		areas = new ArrayList<Area>();
		for (int k = 0; k < 10; k++) {//pisos
			for (int i = 0; i < 20; i++) {//areas
				areas.add(createArea(i, k));
			}
		}
	}

	private Area createArea(int i, int k) {
		Area area = new Area(i);

		area.setDescripcion("lalala" + i);
		area.setEmpleados(createEmpleados(i));
		area.setEscritoriosLibres(i * 10);
		area.setFacturacion(createFacturacion(i));
		area.setId(i);
		area.setResponsable(createResponsable(0));
		area.setNumPiso(k+1);
		return area;
	}

	private List<Empleado> createEmpleados(int i) {

		List<Empleado> listaDeEmpleados = new ArrayList<Empleado>();
		Calendar cal = new GregorianCalendar(2011, 1, i);
		Date d = cal.getTime();
		Empleado empleado = new Empleado(i);

		for (int j = 0; j < 30; j++) {

			empleado.setNombre("Nico" + j);
			empleado.setApellido("Badano" + j);
			empleado.setDocumento(35942753 + j);
			empleado.setId(1 + j);
			empleado.setObraSocial("osde");
			empleado.setLegajo(100 + j);
			empleado.setSalario(3000 + (j * 200));
			empleado.setFechaDeNacimiento(d);
			if (j == 0)
				empleado.setPuesto("Encargado");
			if (j == 1)
				empleado.setPuesto("Seguridad");
			if (j >= 2)
				empleado.setPuesto("Limpieza");

			listaDeEmpleados.add(empleado);

		}
		return listaDeEmpleados;

	}

	private Empleado createResponsable(int i) {
		//List<Empleado> listaDeEmpleados = new ArrayList<Empleado>();

		Calendar cal = new GregorianCalendar(2011, 1, i);
		Date d = cal.getTime();
		Empleado empleado = new Empleado(i);

		empleado.setNombre("Nico" + i);
		empleado.setApellido("Badano" + i);
		empleado.setDocumento(35942753 + i);
		empleado.setId(1 + i);
		empleado.setObraSocial("osde");
		empleado.setLegajo(100 + i);
		empleado.setSalario(3000 + (i * 200));
		empleado.setFechaDeNacimiento(d);
		empleado.setPuesto("Encargado");

		//listaDeEmpleados.add(empleado);

		return empleado;
	}

	private List<Facturacion> createFacturacion(int i) {
		List<Facturacion> listaFacturacion = new ArrayList<Facturacion>();
		Facturacion facturacion = new Facturacion(i, i, i, null);
		for (int j = 0; j < 30; j++) {
		facturacion.setAnio(2000 + i);
		facturacion.setMes(3 + i);
		facturacion.setFacturacion(20000.3 + (5000 * i));
		listaFacturacion.add(facturacion);
		}

		return listaFacturacion;
	}

	public List<Area> getAreas() {
		return areas;
	}

	public void setAreas(List<Area> areas) {
		this.areas = areas;
	}

}
